Method and a system for performing scrubbing in a video stream

ABSTRACT

The present disclosure generally relates to providing video, and more particularly to streaming of video. There is described a method and a system for performing scrubbing in a video stream of a video item selected at a media device. The video item is streamed from a server system to the media device. The method comprises dividing the selected video item into a number of segments and selecting a first snippet for each segment, which snippet is pre-buffered. The video stream of a first segment of the selected video item is played at the media device simultaneously as scrubbing to a second segment of the selected video item. When the scrubbing is done the video stream of the first segment stops and the first snippet of the second segment starts playing seamlessly.

CLAIM OF PRIORITY

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 14/714,163, titled “A METHOD AND A SYSTEM FORPERFORMING SCRUBBING IN A VIDEO STREAM”, filed May 15, 2015, whichapplication is herein incorporated by reference.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction by anyone of the patent documentor the patent disclosure, as it appears in the Patent and TrademarkOffice patent file or records, but otherwise reserves all copyrightrights whatsoever.

FIELD OF INVENTION

The present disclosure generally relates to providing video, and moreparticularly to streaming of video. In particular, the embodimentsdescribed herein relate to a method and a system for performingscrubbing in a video stream of a video item selected at a media device.

BACKGROUND

As computer technology has improved, the digital media industry hasevolved greatly in recent years. Users are able to use media devicessuch as mobile communication devices (e.g., cellular telephones, smartphones, tablet computers, etc.) to consume video and other forms ofmedia content. For instance, users can watch video content (e.g.,movies, television (TV) broadcasts, etc.) on a variety of media devices.

At the same time, advances in network technology have increased thespeed and reliability with which information can be transmitted overcomputers and networks. It is therefore possible for users to streamvideo content over different networks as needed, or on demand, ratherthan receiving a complete file in physical media (such as a CD or a DVD,or downloading the entire file) before consuming the video content.

When streaming video content to a media device it sometimes happens thata user wants to perform scrubbing in order to quickly browse through thevideo item and see if there are any interesting episodes coming up. Suchscrubbing is performed frame by frame in a speed that is faster than theplayback speed. The user may sometimes also perform fast scrubbing bymoving a time cursor, indicative of how much time that lapsed since thestarting time of the video item, to a desired place of a time lineindicating the playing time of the video item. During this time, whenthe time cursor is moved, the video item will flicker in front of theuser's eyes and start playing again, after some delay, from the place(on the time line) where the time cursor is dropped.

SUMMARY

It is in view of the above considerations and others that the variousembodiments disclosed herein have been made.

It is a general object of the embodiments described herein to allow foran improved way of scrubbing in a video stream of a video item.

In a first of its aspects, this disclosure concerns a method forperforming scrubbing in a video stream of a video item selected at amedia device. The video item is streamed from a server system to themedia device. The method comprises, at the server system, dividing theselected video item into a number of segments and selecting a firstsnippet for each segment. The method furthermore comprisespre-buffering, by means of a pre-buffering logic, each snippet andplaying, by means of a playback logic, the video stream of a firstsegment of the selected video item and simultaneously as playing thevideo stream of the first segment scrubbing to a second segment of theselected video item. When reaching the second segment of the selectedvideo item stop playing the video stream of the first segment andseamlessly start playing the first snippet of the second segment.

In various embodiments each first snippet may correspond to 10% of eachsegment. Each first snippet may have a start position at a beginning ofeach segment. However, each first snippet may also be selected based onprevious user behavior when streaming the video item or each firstsnippet may be selected and determined by the server system.

In other embodiments the method further comprises pre-buffering, bymeans of the pre-buffering logic, a second snippet of the first segment,said second snippet having a starting point corresponding to a locationwhere the video stream of the first segment stopped playing. The methodmay further comprise playing, by means of the playback logic, the firstsegment of the video item from the location where it stopped playing inresponse to rescrubbing to the first segment of the video item.

In a second of its aspects, this disclosure concerns a system forscrubbing in a video stream of a video item selected at a media device,the video item being streamed from a server system to the media device.The system comprises the media device, including a processor and amemory, a user interface, provided at the media device, which is adaptedto display the video stream, the server system, which is adapted todivide the selected video item into a number of segments and select afirst snippet for each segment. The system furthermore comprises apre-buffering logic, provided at the media device, which is adapted topre-buffer each first snippet and a playback logic, also provided at themedia device, which playback logic is adapted to play the video streamof a first segment of the selected video item and simultaneously, asplaying the video stream of the first segment, scrub to a second segmentof the selected video item and stop playing the video stream of thefirst segment and seamlessly start playing the first snippet of thesecond segment.

In some embodiments the pre-buffering logic may further be adapted tostore 10% of the segment as the first snippet or adapted to store thefirst snippet starting from a beginning of each segment. Thepre-buffering logic may alternatively be adapted to store the firstsnippet based on previous user behavior when streaming the video item oradapted to store the first snippet based on determination of a contentprovider.

On other embodiments the pre-buffering logic is further adapted topre-buffer a second snippet of the first segment, said second snippethaving a starting point corresponding to a location where the videostream of the first segment stopped playing. In such a case the playbacklogic may further be adapted to play the first segment of the video itemfrom the location where it stopped playing.

In a third of it aspects, this disclosure concerns a non-transitorycomputer readable storage medium, including instructions stored thereonwhich when read and executed by a computer or media device causes thecomputer or media device to perform the following steps. Dividing, at aserver system, a selected video item into a number of segments,selecting, at the server system, a first snippet for each segment andpre-buffering, by means of a pre-buffering logic, each first snippet.The instructions further cause the computer or media device to performplaying, by means of a playback logic, a video stream of a first segmentof the selected video item, scrubbing, simultaneously as playing thevideo stream of the first segment, to a second segment of the selectedvideo item, and stop playing the video stream of the first segment andseamlessly start playing the first snippet of the second segment.

In some embodiments the non-transitory computer readable storage mediumfurther causes the computer or media device to perform the step ofpre-buffering, by means of the pre-buffering logic, a second snippet ofthe first segment, said second snippet having a starting pointcorresponding to a location where the video stream of the first segmentstopped playing. In such a case the non-transitory computer readablestorage medium may further cause the computer or media device to performthe step of playing, by means of the playback logic, the first segmentof the video item from the location where it stopped playing in responseto scrubbing to the first segment of the video item.

Various embodiments described herein allow a user of a media device toperform scrubbing in a video stream of a video item while playing thevideo item. The playback of the video item continues as usual until thescrubbing stops, at which instance a snippet of the segment to which theuser has scrubbed starts to play seamlessly. Thus, the user will notexperience any flicker as in existing implementations which allowscrubbing fast scrubbing of video stills or frames and only allowplayback when not scrubbing. When the scrubbing is stopped the mediadevice will seamlessly start playing the video item from the segment towhich the scrubbing was performed. One feature that makes this possibleis that the playback of the video item after scrubbing does notnecessarily start playing exactly at the location to which the userscrubbed but rather from a snippet of the segment to which the userscrubbed. By playing a preselected snippet from the segment to which theuser scrubs it is possible to pre-buffer parts or episodes of eachsegment and to start play these snippets seamlessly.

By using the technique described in this disclosure the user will get acomplete new experience when performing scrubbing in a video stream.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other aspects, features and advantages will be apparent andelucidated from the following description of various embodiments,reference being made to the accompanying drawings, in which:

FIG. 1 is a block diagram schematically illustrating an exemplary videocontent delivery system in accordance with some embodiments;

FIG. 2 illustrates an example embodiment of a system for playback ofvideo streams, in accordance with an embodiment;

FIG. 3 illustrates an example of video item segments and snippets of avideo item segment;

FIG. 4 illustrates another example of video item segments and snippetsof a video item segment;

FIG. 5 illustrates how different snippets from two segments make up avideo preview;

FIG. 6 illustrates a media device playing a video stream and having astraight time line for indicating the location of where in time thevideo item is being played;

FIG. 7 illustrates another media device playing a video stream andhaving a circular time line for indicating the location of where in timethe video item is being played;

FIG. 8 schematically illustrates a flowchart of a method in accordancewith an embodiment;

FIG. 9 illustrates a carrier comprising a computer program, inaccordance with an embodiment; and

FIG. 10 illustrates an example implementation of an embodiment of amedia device.

DETAILED DESCRIPTION

The present invention will now be described more fully hereinafter. Theinvention may, however, be embodied in many different forms and shouldnot be construed as limited to the embodiments set forth herein; rather,these embodiments are provided by way of example so that this disclosurewill be thorough and complete, and will fully convey the scope of theinvention to those persons skilled in the art. Like reference numbersrefer to like elements or method steps throughout the description.

As described earlier, some existing solutions for scrubbing in a videostream of a video item may be inadequate. It is therefore a generalobject of the embodiments described herein to allow for an improvedscrubbing of streamed video items.

To address this, in accordance with different embodiments, describedherein are a method and a system for scrubbing in a video stream of avideo item selected at a media device. The scrubbing is performed whilethe video stream is played.

This way, it is made possible to enable a user of the media device toseamlessly go from watching one segment of the video item to anothersegment of the video item without the hassle of seeing a flickeringvideo stream.

FIG. 1 is a block diagram illustrating an exemplary video contentdelivery system 100 in accordance with some embodiments. The videocontent delivery system 100 may comprise one or several media devices200 (e.g., media device 200-1 and media device 200-2) and one serversystem 300 that may comprise one or more servers (e.g., media contentservers also known as media servers).

In some embodiments, the media device 200 may be a mobile telephone,such as a smart phone. Alternatively, the media device 200 may be atablet computer. In yet other embodiments, the media device 200 may beany other media device capable of playback of video content such as, forexample, one of the media devices of the following group: a laptop, anda mobile media device (e.g. a handheld entertainment device, or adigital media player).

One or several networks (e.g., network(s) 400) may communicativelyconnect each component of the video content delivery system 100 withother components of the video content delivery system 100. Thenetwork(s) 400 may include public communications networks, privatecommunication networks or a combination of both public and privatecommunication networks. For example, the networks(s) may include anynetwork(s) such as the Internet, other wide area networks (WAN), localarea networks (LAN), virtual private networks (VPN), metropolitan areanetworks (MAN), peer-to-peer networks, and/or ad-hoc networks.

Turning now to FIG. 2, an example environment where embodiments of thisdisclosure may be applied will be described. A media device 200, e.g.the media device 200-1 of FIG. 1, may be communicatively connectable tothe server system 300 via the network 400, e.g. the Internet, asdescribed hereinabove. As can be seen in FIG. 2, only a single mediadevice 200 and a single server system 300 are shown. However, the serversystem 300 may support the simultaneous use of multiple media devices,and/or the media device 200 can simultaneously access media content atmultiple server systems 300. Although FIG. 2 illustrates the serversystem 300 in accordance with one example embodiment, FIG. 2 is intendedmore as a functional description of the various features, or components,which may be present in one or more server systems, rather than astructural schematic of the various implementations described throughoutthis disclosure. In practice, and as recognized by persons skilled inthe art, components shown separately could be combined and somecomponents could be separated.

As is schematically shown in FIG. 2, the media device 200 may be usedfor the playback of video content (e.g., video content such as a movie),which is provided by the server system 300. The media device 200 mayinclude one or several physical computer resources, or hardwareresources 210. The hardware resources 210 may e.g. include one orseveral processors (or, processing circuitry), a communicationsinterface (or, communication circuitry) and one or several memories.Likewise, the server system 300 operating as a media server may includeone or several physical computer resources, or hardware resources 316.The hardware resources 316 may likewise include one or severalprocessors (or, processing circuitry), a communications interface (or,communication circuitry) and one or several memories.

The server system 300 may include an operating system or otherprocessing system which supports execution of a software application310, including a video server application 312 which may be used, forexample, to stream video content. A video stream service 320 may be usedto buffer video content, for streaming to one or more media streams 322,324, and 326. A video application interface 314 may receive requestsfrom media devices 200 or other systems, to retrieve video content 331from the server system 300.

Video content 331, or video items, may be provided, for example, withina first storage such as a memory (e.g., including a database), or may bereceived by the server system 300 from another source (not shown). Thisother source (not shown) could be external to the server system 300,i.e. it may be located remotely from the server system 300 and may issome exemplary embodiments also be stored at the media device itself.

A video streaming logic 330 may be used to retrieve or otherwise accessthe video content 331 in response to requests from media devices 200 orother systems, and populate the video stream service with streams 322,324, 326 of corresponding video content data 323, 325, 327 that may bereturned, i.e. streamed, to the requesting media device 200.

The media device 200 comprises a user interface 230, which is adapted todisplay or otherwise provide a visual array of video options 232, forexample a two-dimensional grid, a list, or other visual array format,and determine a user input. Each video option in the visual array ofvideo options 232 correspond to a respective video stream 322, 324, 326.

Selecting a particular video option within the visual array 232 may insome embodiments be used, or otherwise interpreted, as a request orinstruction to the video server application 312 to stream or otherwisereturn a corresponding particular video content item. For example, inaccordance with some embodiments, the software application 310 at theserver system 300 may be used to stream or otherwise communicate videocontent to the media device 200, wherein the user interface 230 at themedia device 200 is adapted to display a plurality of video options thatcorrespond to respective video streams.

In accordance with some embodiments, the media device 200 may alsoinclude a video playback application 220, together with a playback logic222 comprising a pre-buffering logic 145 and other logics, which may beused to control the playback of video content that is received from thevideo server application 312, for playback by the media device 200, andpre-buffering snippets as described in further detail below.

A user 600 may interact 11 with the user interface 230 and issuerequests, for example playing a selected video option at the mediadevice 200. The user's selection of a particular video option may becommunicated 12 to the video server application 312, via the videoapplication interface 314. The video server application 312 may then beinstructed 13 to stream corresponding video content 13, including one ormore streams of video content data 323, 325, 327, and subsequentlystream 14 or otherwise communicate the selected video to the user'smedia device 200. In accordance with some embodiments, pre-bufferingrequests from the media device 200 may also be communicated 12 to thevideo server application 312 via the video application interface 314.

With reference to FIG. 3 a video item is illustrated. According to someembodiments each video item is divided into segments at the serversystem. As mentioned above the server system is not to be interpreted asone physical server, but is rather defined by the function that itperforms, i.e. in this case divide a video item into different segmentsA to P. Physically this dividing into segments may be performed at themedia server 300 but could in some embodiments also be performed at themedia device 200 itself, since also the media device 200 is providedwith hardware 210 such as processors, memories etc.

With further reference to FIG. 3 it is shown how two snippets H1 and H2have been selected as representing segment H, which will be describedfurther with reference to FIG. 8. It should be understood that for eachsegment there is selected at least one snippet representing thatsnippet. In FIG. 3 each segment is shown as being equally in time(length), but this is only one of many options for dividing the videoitems into segments. The segments may be chosen such that they eachcorrespond to for example one minute, five minutes or ten minutes etc.,as shown in FIG. 3. They may also be chosen such that each segmentcorresponds to an episode or a feature of the video item, i.e. thesegments are differing in time. The selection of snippets may also beperformed in a variety of ways. The snippets may be programmaticallychosen, e.g. 30 seconds every 5 minutes with a start position for thesnippet H1 at the beginning of each segment or with the start positionfor the snippet H2 in the middle of the segment or any otherprogrammatically chosen way as is understood by a person skilled in theart. The snippets may also be editorially chosen, i.e. an editor picksinteresting snippets from each video segment. It is according to someembodiments also possible to choose or pick a snippet based on previoususer behavior, i.e. it might be based on the most popular spots of thevideo item in that particular segment or the like. There are numerousother ways and algorithms that may be used to select a snippet ofinterest. Usually a snippet corresponds to between 5-25%, preferably 10%of the length of the segment it represents.

Turning now to FIG. 4 another example of video item segments A to P andsnippets of a video item segment are shown. In this example the snippetsof segment K are shown as K1, K₂ and K₃. These snippets have beenselected by an editor and have different lengths.

FIG. 5 illustrates how different snippets from two segments make up avideo preview. In this example embodiment the video item comprises twosegments, one segment representing video X and Y, respectively. For thefirst segment, i.e. video X, an editor has selected three differentsnippets X₁, X₂ and X₃ for representing video X. As illustrated thesnippets are of equal length, but as mentioned above and shown in FIG. 4the snippets may have different lengths. For the second segment, i.e.video Y, the editor has selected two snippets Y₁ and Y₂ for representingvideo Y. The selection of snippets may as mentioned above be based ondifferent criteria, but when an editor makes the selection it is oftenbased such that it represents a popular episode or scene. The selectedsnippets may the together from the base of a video preview or trailerfor the video item.

With reference to FIGS. 3-5, different examples of dividing a selectedvideo item into segments have been shown together with how to select arepresentative snippet or snippets for each segment. However, it shouldbe understood that there are numerous other ways to divide and selectsegments and snippets, respectively, which is readily appreciated by aperson skilled in the art after reading this disclosure.

FIG. 6 illustrates a media device 200 playing a video stream 700according to some embodiments. The user interface of the media devicecomprises a straight time line 750 for indicating the location of wherein time the video item in the video stream 700 is being played. In theshown example the fifth time segment is being played. When watching thevideo stream 700 a user that wants to scrub may touch the touchsensitive screen and hold its finger on the screen to start scrubbing.By moving the finger a little to the right the video stream 700 will bescrubbed forward and by moving the finger a little to left the videostream 700 will scrubbed backwards. This is schematically shown byarrows as “touch and hold” in FIG. 6.

FIG. 7 illustrates another media device 200 playing a video stream 700and having a circular time line 760 instead of a straight line forindicating the location of where in time the video item in the videostream is being played. The principle for scrubbing is essentially thesame for the embodiment in depicted in FIG. 7, as the one described inconjunction with FIG. 6. However the movement of the finger is morerotational as indicated by the arrows as “touch and hold”.

FIG. 8 schematically illustrates a flowchart of a method 800 forscrubbing in a video stream of a video item selected at a media devicein accordance with an embodiment. The video item is streamed from aserver system to the media device. The method 800 starts at step 802 inwhich the server system divides the selected video item into a number ofsegments. As described above in conjunction with FIGS. 3-5 this divisionmay be done in a variety of ways. Each segment may thus be of equallength in time or may correspond to a scene or episode etc.

The method 800 proceeds with step 804 in which the server system selectsa first snippet for each segment. This selection may, as alreadydescribed above in conjunction with FIGS. 3-5, be done in many differentways. In one embodiment the first snippet is selected such that itsstarting position is at the beginning of each segment. The length (time)of the first snippet is preferably somewhere in the range of 5-25% ofthe length of the segment from which it is selected. Preferably, eachfirst snippet corresponds to 10% of each segment, i.e. for example 30seconds for a segment that is 5 minutes. Instead of selecting a firstsnippet that starts from the beginning of the segment the selection mayinstead be based on previous user behavior when streaming the videoitem. Thus if a certain scene or portion of the segment has been playedmore often than other scenes or portion, such a popular scene or portionmight be selected as the first snippet. The purpose of the snippet is torepresent the segment from which it is selected.

The first snippet is then, in step 806, pre-buffered by means of thepre-buffering logic of the media device. Since each segment will have atleast one snippet representing that segment all these first snippetswill be pre-buffered to the media device.

When a user selects a video item the method 800 starts playing, in step808, the video stream representing the video item, by means of theplayback logic of the media device. The playback logic of the mediadevice starts playing the first segment of video item. If a user nowdecides to start scrubbing to another segment, i.e. to a second segment,in the video stream the following will happen. Instead of scrubbing witha flickering picture, the playback logic of the media device continuesto play, at step 810, the first segment at normal speed, i.e. continuesto play the video item while performing scrubbing. Thus scrubbing in thevideo stream and playing of the video item is done simultaneously. Whenthe scrubbing to the second segment has been done the first segmentstops playing and the first snippet of the second segment starts playingimmediately, in step 812, i.e. starts playing seamlessly from where theplayback of the first segment ended. The reason that it is possible toseamlessly start playing the second segment is that a first snippetrepresenting the second segment already has been pre-buffered to themedia device and thus can be played immediately. It is the pre-bufferingof snippets representing each segment that makes it possible to startplaying a new episode directly after scrubbing.

In another embodiment it is further envisioned to pre-buffer a secondsnippet of the first segment (814). This may be very useful if a userdecides to scrub back to a previously played segment. The second snippethas a starting point corresponding to the location where the videostream of the first segment stopped playing. Thus, when rescrubbing backto a previous segment it is possible to start playing the segment fromthe location where it stopped playing without and delay, i.e.seamlessly.

Turning now to FIG. 9, still another embodiment will be brieflydiscussed. FIG. 9 shows an example of a computer-readable medium, inthis example in the form of a data disc 1100. In one embodiment the datadisc 1100 is a magnetic data storage disc. The data disc 1100 isconfigured to carry instructions 1101 that can be loaded into a memory210B of a media device 200. Upon execution of said instructions by aprocessor 210A of the media device 200, the media device 200 is causedto execute a method or procedure according to any one of the embodimentsdescribed in conjunction with FIG. 8. The data disc 1100 is arranged tobe connected to or within and read by a reading device (not shown), forloading the instructions into the processor. One such example of areading device in combination with one (or several) data disc(s) 1100 isa hard drive. It should be noted that the computer-readable medium canalso be other mediums such as compact discs, digital video discs, flashmemories or other memory technologies commonly used. In such anembodiment the data disc 1100 is one type of a tangiblecomputer-readable medium. The instructions may alternatively bedownloaded to a computer data reading device, such as a media device 200capable of reading computer coded data on a computer-readable medium, bycomprising the instructions in a computer-readable signal (not shown)which is transmitted via a wireless (or wired) interface (for examplevia the Internet) to the computer data reading device for loading theinstructions into a processor 210A of the media device 200. In such anembodiment, the computer-readable signal is one type of a non-tangiblecomputer-readable medium.

With reference to FIG. 10, an example implementation of the media device200 of FIG. 1 will be described in some further detail. For example, themedia device 200 may be implemented as a portable electronic device,such as a smart phone, a mobile telephone, a cellular telephone, atablet computer, a laptop computer, or a personal digital assistant.

In some embodiments, the media device 200 may comprise means adapted toperform the method described below with reference to FIG. 8. In oneembodiment, the media device 200 may thus comprise means adapted dividethe selected video item into a number of segments. As mentioned abovethe dividing step is performed by the server system. In conjunction withthe present disclosure the server system should be interpreted broadlyas performing a function and not that the function has to be performedin or on a certain physical hardware. Thus, normally the dividing intosegments of the selected video item is performed in the media server300. By doing so all media devices 200 that are connected to the mediaserver 300 benefit from the segmentation of the video item since it iscentrally performed. However it would also be possible to perform thedivision into segments locally at the media device, by means of itshardware 210. This may be the case if there are video items locallystored on the media device 200. Also the selection of first snippets maybe performed locally, but are mostly performed at the media server 300.However, selecting the second snippet is most preferably performed atthe media device 200 since it relates to local behavior of the user atthe media device.

With continued reference to FIG. 10, an example implementation of themedia device 200 will now be described. The media device 200 isconfigured to execute, or otherwise perform, any of the methodsdescribed above with reference to FIG. 8 either by its own or as a partof a system. As is schematically illustrated in FIG. 10, the mediadevice 200 comprises hardware 210A-C and a user interface (UI) 230. Forexample, the media device 200 may comprise one or more processors 210Aand one or more memories 210B. Also, a communications interface 210C maybe provided in order to allow the media device 200 to communicate withother media devices and/or server systems 300, e.g. via a network 400such as the Internet. To this end, the communications interface 210C maycomprise a transmitter (Tx) and a receiver (Rx). Alternatively, thecommunications interface 210C may comprise a transceiver (Tx/Rx)combining both transmission and reception capabilities. Thecommunications interface 210C may include a radio frequency (RF)interface allowing the media device 200 to communicate with otherdevices and/or server systems 300 through a radio frequency band throughthe use of different radio frequency technologies such as LTE (Long TermEvolution), WCDMA (Wideband Code Division Multiple Access), any othercellular network standardized by the 3rd Generation Partnership Project(3GPP), or any other wireless technology such as Wi-Fi, Bluetooth®,etcetera. The media device 200 may further comprise a user interface230, which may be comprised of a display and a keypad. Advantageously,the user interface 230 includes a touch-sensitive display. As such, thetouch-sensitive display may be a touch screen display upon which virtualkeys may be displayed and operated. As described above with reference toFIG. 2, the media device 200 may also comprise one or more applications,e.g. a video playback application 220. These applications may includesets of instructions (e.g., computer program code) that when executed bythe one or more processors 210A control the operation of the mediadevice 200.

In some implementations, the one or more memories 210B stores computerprogram code, which, when run in the one or more processors 210A causesthe media device 200 to perform the method described in conjunction withFIG. 8.

In the detailed description hereinabove, for purposes of explanation andnot limitation, specific details are set forth in order to provide athorough understanding of various embodiments described in thisdisclosure. In some instances, detailed descriptions of well-knowndevices, components, circuits, and methods have been omitted so as notto obscure the description of the embodiments disclosed herein withunnecessary detail. All statements herein reciting principles, aspects,and embodiments disclosed herein, as well as specific examples thereof,are intended to encompass both structural and functional equivalentsthereof. Additionally, it is intended that such equivalents include bothcurrently known equivalents as well as equivalents developed in thefuture, i.e., any elements developed that perform the same function,regardless of structure. Thus, for example, it will be appreciated thatblock diagrams herein can represent conceptual views of illustrativecircuitry or other functional units embodying the principles of thedescribed embodiments. Similarly, it will be appreciated that any flowcharts and the like represent various processes which may besubstantially represented in computer readable medium and so executed bya computer or processor, whether or not such computer or processor isexplicitly shown. The functions of the various elements includingfunctional blocks may be provided through the use of hardware such ascircuit hardware and/or hardware capable of executing software in theform of coded instructions stored on the above-mentioned computerreadable medium. Thus, such functions and illustrated functional blocksare to be understood as being hardware-implemented and/orcomputer-implemented, and thus machine-implemented. In terms of hardwareimplementation, the functional blocks may include or encompass, withoutlimitation, digital signal processor (DSP) hardware, reduced instructionset processor, hardware (e.g., digital or analog) circuitry includingbut not limited to application specific integrated circuit(s) [ASIC],and/or field programmable gate array(s) (FPGA(s)), and (whereappropriate) state machines capable of performing such functions. Interms of computer implementation, a computer is generally understood tocomprise one or more processors or one or more controllers. Whenprovided by a computer or processor or controller, the functions may beprovided by a single dedicated computer or processor or controller, by asingle shared computer or processor or controller, or by a plurality ofindividual computers or processors or controllers, some of which may beshared or distributed. Moreover, use of the term “processor” or“controller” may also be construed to refer to other hardware capable ofperforming such functions and/or executing software, such as the examplehardware recited above.

In some embodiments, the present invention includes a computer programproduct which is a non-transitory storage medium or computer readablemedium (media) having instructions stored thereon/in which can be usedto program a computer to perform any of the processes of the presentinvention. Examples of the storage medium can include, but is notlimited to, any type of disk including floppy disks, optical discs, DVD,CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs,EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards,nanosystems (including molecular memory ICs), or any type of media ordevice suitable for storing instructions and/or data

Modifications and other variants of the described embodiments will cometo mind to one skilled in the art having benefit of the teachingspresented in the foregoing description and associated drawings.Therefore, it is to be understood that the embodiments are not limitedto the specific example embodiments described in this disclosure andthat modifications and other variants are intended to be included withinthe scope of this disclosure.

Still further, although specific terms may be employed herein, they areused in a generic and descriptive sense only and not for purposes oflimitation. Therefore, a person skilled in the art would recognizenumerous variations to the described embodiments that would still fallwithin the scope of the appended claims. As used herein, the terms“comprise/comprises” or “include/includes” do not exclude the presenceof other elements or steps. Furthermore, although individual featuresmay be included in different claims, these may possibly advantageouslybe combined, and the inclusion of different claims does not imply that acombination of features is not feasible and/or advantageous. Inaddition, singular references do not exclude a plurality.

1. A method for performing scrubbing in a video stream of a video itemselected at a media device, the video item being streamed from a serversystem to the media device, said method comprising: dividing, at theserver system, the video item into a plurality of segments; selecting,at the server system, a plurality of snippets to be associated with theplurality of segments of the video item, including at least a firstsnippet for each segment of the plurality of segments; pre-buffering, bymeans of a pre-buffering logic, each first snippet of the plurality ofsnippets; playing, by means of a playback logic, in response toreceiving a request to play the video item as a selected video item, thevideo stream of a first segment of the selected video item; and inresponse to receiving a request to scrub playback of the selected videoitem from the first segment to a second segment of the selected videoitem, scrubbing, simultaneously with playback of the first segment,including while scrubbing from the first segment to the second segmentof the video item, continue playing the video stream of the firstsegment of the video item, and upon completion of the scrubbing, stopplaying the video stream of the first segment and start playing thefirst snippet of the second segment of the video item.
 2. The methodaccording to claim 1, wherein each first snippet corresponds to 10% ofeach segment.
 3. The method according to claim 2, wherein each firstsnippet has a start position at a beginning of each segment.
 4. Themethod according to claim 2, wherein selecting each first snippet isbased on previous user behavior when streaming the video item.
 5. Themethod according to claim 2, wherein selecting each first snippet isdetermined by the server system.
 6. The method according to claim 1,further comprising: pre-buffering, by means of the pre-buffering logic,a second snippet of the first segment, said second snippet having astarting point corresponding to a location where the video stream of thefirst segment stopped playing.
 7. The method according to claim 6,further comprising playing, by means of the playback logic, the firstsegment of the video item from the location where it stopped playing inresponse to rescrubbing to the first segment of the video item.
 8. Asystem that enables scrubbing in a video stream of a video item selectedat a media device, the video item being streamed from a server system tothe media device, comprising: the media device, including a processorand a memory; a user interface, provided at the media device, which isadapted to display the video stream; the server system, which is adaptedto divide the video item into a plurality of segments and select aplurality of snippets to be associated with the plurality of segments ofthe video item, including at least a first snippet for each segment; apre-buffering logic, provided at the media device, which is adapted topre-buffer each first snippet of the plurality of snippets; a playbacklogic, provided at the media device, which is adapted to, in response toreceiving a request to play the video item as a selected video item,play the video stream of a first segment of the selected video item; andin response to receiving a request to scrub playback of the selectedvideo item from the first segment to a second segment of the selectedvideo item, scrubbing, simultaneously with playback of the firstsegment, including while scrubbing from the first segment to the secondsegment of the video item, continue playing the video stream of thefirst segment of the video item, and upon completion of the scrubbing,stop playing the video stream of the first segment and start playing thefirst snippet of the second segment of the video item.
 9. The systemaccording to claim 8, wherein the pre-buffering logic is further adaptedto store 10% of the segment as the first snippet.
 10. The systemaccording to claim 9, wherein the pre-buffering logic is further adaptedto store the first snippet starting from a beginning of each segment.11. The system according to claim 9, wherein the pre-buffering logic isfurther adapted to store the first snippet based on previous userbehavior when streaming the video item.
 12. The system according toclaim 9, wherein the pre-buffering logic is further adapted to store thefirst snippet based on determination of a content provider.
 13. Thesystem according to claim 8, wherein the pre-buffering logic is furtheradapted to pre-buffer a second snippet of the first segment, said secondsnippet having a starting point corresponding to a location where thevideo stream of the first segment stopped playing.
 14. The systemaccording to claim 13, wherein the playback logic is further adapted toplay the first segment of the video item from the location where itstopped playing
 15. A non-transitory computer readable storage medium,including instructions stored thereon which when read and executed by acomputer or media device causes the computer or media device to performthe steps comprising: dividing, at a server system, a video item into aplurality of segments; selecting, at the server system, a plurality ofsnippets to be associated with the plurality of segments of the videoitem, including at least a first snippet for each segment of theplurality of segments; pre-buffering, by means of a pre-buffering logic,each first snippet of the plurality of playing, by means of a playbacklogic, in response to receiving a request to play the video item as aselected video item, a video stream of a first segment of the selectedvideo item; and in response to receiving a request to scrub playback ofthe selected video item from the first segment to a second segment ofthe selected video item, scrubbing, simultaneously with playback of thefirst segment, including while scrubbing from the first segment to thesecond segment of the video item, continue playing the video stream ofthe first segment of the video item, and upon completion of thescrubbing, stop playing the video stream of the first segment and startplaying the first snippet of the second segment of the video item. 16.The non-transitory computer readable storage medium of claim 15, furthercausing the computer or media device to perform the step ofpre-buffering, by means of the pre-buffering logic, a second snippet ofthe first segment, said second snippet having a starting pointcorresponding to a location where the video stream of the first segmentstopped playing.
 17. The non-transitory computer readable storage mediumof claim 16, further causing the computer or media device to perform thestep of playing, by means of the playback logic, the first segment ofthe video item from the location where it stopped playing in response toscrubbing to the first segment of the video item.
 18. The methodaccording to claim 1, wherein selected snippets associated with at leasttwo segments of the plurality of segments are used as a video preview ofthe video item.
 19. The system according to claim 8, wherein selectedsnippets associated with at least two segments of the plurality ofsegments are used as a video preview of the video item.
 20. Thenon-transitory computer readable storage medium of claim 15, whereinselected snippets associated with at least two segments of the pluralityof segments are used as a video preview of the video item.